katliusminecraftfandomcom_es-20200215-history
Módulo:Grid
local p = {} -- Individual cell function p.grid(item) if (item nil) then return { } end local iLink = nil local iFill = nil --for fluid_cell implementation local iNum= math.floor( string.match(item, ',%s*(%d+)' ) or 0 ) local iName = string.sub(string.match(item, '.+,') or item..' ', 1, -2) local tooltip = string.match(item, '%.+%') if tooltip ~= nil then iName = string.sub(iName, string.len(tooltip)+1) tooltip = string.sub(tooltip,2,-2) end local hasPercentage = string.match(item, "%%") local aliases = mw.loadData('Módulo:Grid/Aliases') if tooltip nil then if aliasesiName then tooltip = aliasesiName end else if aliasestooltip then tooltip = aliasestooltip end end if(iName:find("~")) then iLink = string.match(iName, '~(.+)') iName = string.match(iName, '(.+)~') end if(iName:find("%^")) then local fhandler = mw.loadData('Módulo:Grid/FluidHandler') iFill = string.match(iName, '%^(.+)') iName = string.match(iName, '(.+)%^') if fhandleriFill then iFill = fhandleriFill --rename else --invalid fluid, so remove it iFill = nil end if fhandleriName then iName = fhandleriName --rename else --invalid container, so remove fluid iFill = nil end end paras = { } paras"name" = iName if(iLink ~= nil) then paras"link"=iLink end if(iFill ~= nil) then paras"fill"=iFill end if(iNum > 1 or hasPercentage) then paras"number"=iNum end if(hasPercentage) then paras"percent"="x" end if(tooltip ~= nil) then paras"tooltip"=tooltip end return paras end -- Gets a cell or animated cell function p.cell(f, item) if (item nil) then return '' end if (item:find(';')) then local text = ' ' for frame in mw.text.gsplit( item, '%s*;%s*' ) do text = text .. '' if frame 'Blank' or frame 'blank' then text = text .. '' else text = text .. f:expandTemplate{ title='Grid', args = p.grid(frame) } end text = text .. '' end text = text .. ' ' return text end return f:expandTemplate{ title='Grid', args = p.grid(item) } end -- function p.liquid(f, item) if (item nil) then return '' end local text = '' for i=1,3,1 do text = text .. f:expandTemplate{ title='Grid', args = p.grid(item) } end return text end -- function p.tank(f) local args = f if f mw.getCurrentFrame() then args = f:getParent().args end local link = args.link or '' local tank = args.tank or '' local left = args.left or '' local width = args.width or '24' local top = tonumber(args.top) or 92 local height = tonumber(args.height) or 94 local max = tonumber(args.max) or 10000 local fill = tonumber(args.fill) or 0 if fill > max then top = top - height up = height down = height * 2 else top = top - ((height/max)*fill) up = (height/max)*fill down = height + ((height/max)*fill) end local div = mw.html.create('div') div :addClass('tooltip') :css('left', left .. 'px') :css('top', tostring(top) .. 'px') :css('position', 'absolute') :css('width', width .. 'px') :css('height', tostring(height) .. 'px') :css('clip', 'rect(' .. tostring(up) .. 'px,' .. tostring(width) ..'px,' .. tostring(down) .. 'px,0px)') :attr('title', tank) :wikitext(' ') return tostring( div ) end function p.gc ( f ) local args = f if f mw.getCurrentFrame() then args = f:getParent().args end return p.cell(f, (args1 or args.name)) end function p.craftingTable( f ) local args = f if f mw.getCurrentFrame() then args = f:getParent().args end local gridArgs = { A1=p.cell(f, args.A1), A2=p.cell(f, args.A2), A3=p.cell(f, args.A3), B1=p.cell(f, args.B1), B2=p.cell(f, args.B2), B3=p.cell(f, args.B3), C1=p.cell(f, args.C1), C2=p.cell(f, args.C2), C3=p.cell(f, args.C3), Output=p.cell(f, args.Output), Break=args.Break } return f:expandTemplate{ title='Crafting', args= gridArgs} end function p.furnace( f ) local args = f if f mw.getCurrentFrame() then args = f:getParent().args end local gridArgs = { Input=p.cell(f, (args.Input or args.Top)), Fuel=p.cell(f, (args.Fuel or args.Bottom)), Output=p.cell(f, args.Output), Break=args.Break } return f:expandTemplate{ title='Crafting/Furnace', args= gridArgs} end function p.turningNumber(number) if number '1' then return 22 elseif number '2' then return 44 elseif number '3' then return 66 elseif number '4' then return 88 else return 110 end end function p.turningBarrel(number,t) if t nil then if number '1' then return 38 elseif number '2' then return 46 elseif number '3' then return 52 elseif number '4' then return 58 else return 64 end else if number '1' then return 26 elseif number '2' then return 20 elseif number '3' then return 14 elseif number '4' then return 6 else return 0 end end end function p.turning(f) local args = f if f mw.getCurrentFrame() then args = f:getParent().args end local gridArgs = {Output=p.cell(f, args.Output)} if args.float or args.Float then gridArgs.float = args.float or args.Float end if args.nobreak then gridArgs.nobreak = args.nobreak end if args.Output nil then return f:expandTemplate{title='Grid/Turning Table/Return', args=gridArgs} else gridArgs.Output = args.Output end local valid = {Drill='Iron', Handle='Iron', Axle='Iron', Wood='Wooden', Wooden='Wooden'} if validargs.Output nil then return f:expandTemplate{title='Grid/Turning Table/Return', args=gridArgs} else gridArgs.Type = validargs.Output end if gridArgs.Type 'Wooden' then bounce = 3 else bounce = 5 end gridArgs.top = 70 if args.Layout ~= nil and args.Layout:find(',') then local layout = mw.text.split(args.Layout,"%g*,%g*") for i = 1, #layout do if tonumber(layouti) > bounce then layouti = tostring(bounce) elseif tonumber(layouti) < 1 then layouti = "1" end if tonumber(layouti) 5 then gridArgs.top = 71 end end gridArgs.n1 = p.turningNumber(layout1) gridArgs.b1 = p.turningBarrel(layout1) gridArgs.b1t = p.turningBarrel(layout1,1) gridArgs.n2 = p.turningNumber(layout2) gridArgs.b2 = p.turningBarrel(layout2) gridArgs.b2t = p.turningBarrel(layout2,1) gridArgs.n3 = p.turningNumber(layout3 or bounce) gridArgs.b3 = p.turningBarrel(layout3 or bounce) gridArgs.b3t = p.turningBarrel((layout3 or bounce),1) gridArgs.n4 = p.turningNumber(layout4 or bounce) gridArgs.b4 = p.turningBarrel(layout4 or bounce) gridArgs.b4t = p.turningBarrel((layout4 or bounce),1) gridArgs.n5 = p.turningNumber(layout5 or bounce) gridArgs.b5 = p.turningBarrel(layout5 or bounce) gridArgs.b5t = p.turningBarrel((layout5 or bounce),1) else barrelbounce = p.turningBarrel(bounce) barreltbounce = p.turningBarrel(bounce,1) bounce = p.turningNumber(bounce) gridArgs.n1 = bounce gridArgs.b1 = barrelbounce gridArgs.b1t = barreltbounce gridArgs.n2 = bounce gridArgs.b2 = barrelbounce gridArgs.b2t = barreltbounce gridArgs.n3 = bounce gridArgs.b3 = barrelbounce gridArgs.b3t = barreltbounce gridArgs.n4 = bounce gridArgs.b4 = barrelbounce gridArgs.b4t = barreltbounce gridArgs.n5 = bounce gridArgs.b5 = barrelbounce gridArgs.b5t = barreltbounce end return f:expandTemplate{title='Grid/Turning Table/Return', args=gridArgs} end return p --